/*
 * @Author: Li Zengkun
 * @Date: 2022-08-13 08:38:31
 * @LastEditors: Li Zengkun
 * @LastEditTime: 2022-08-18 14:36:13
 * @Description: 
 */
let oTip = document.querySelector('#tip')
let isTip = true
    /**
     * @description: 获取 URL 参数
     * @return {*} r[2] 
     * @return {*} null 
     * @param {*} name 需要获取的参数名称
     */
function getUrlParam(name) {
    let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)")
    let r = decodeURI(window.location.search).substr(1).match(reg)
    if (r != null) {
        return r[2]
    }
    return ''
}

/**
 * @description: 弹出提示框
 * @return {*}
 * @param {*} text (String) 提示内容
 */
function openTip(text) {
    if (isTip) {
        isTip = false
        console.log("openTip");
        oTip.style.display = 'inline-block'
        oTip.innerHTML = text
        setTimeout(() => {
            isTip = true
            oTip.style.display = 'none'
        }, 3000)
    }
}

// 给所有ELement元素添加trigger方法
Element.prototype.trigger = function(eventName) {
    this.dispatchEvent(new Event(eventName));
}

/**
 * @description: 防抖函数:搜索框搜索输入。只需用户最后一次输入完，再发送请求；
                            用户名、手机号、邮箱输入验证；
                        浏览器窗口大小改变后，只需窗口调整完后，再执行 resize 事件中的代码，防止重复渲染。
 * @return {*}
 * @param {*} fun    (function)   要执行的函数
 * @param {*} wait   (Number)     防抖毫秒数
 */
function debounceAntiShake(fun, wait) {
    let timer = null;
    return function() {
        if (timer) {
            clearTimeout(timer)
        }
        timer = setTimeout(() => {
            fun();
        }, wait)
    }
}

/**
 * @description:  节流函数：懒加载、滚动加载、加载更多或监听滚动条位置；
 *                          百度搜索框，搜索联想功能；
 *                          防止高频点击提交，防止表单重复提交；
 * @return {*}
 * @param {*} fun    (function)   要执行的函数
 * @param {*} wait   (Number)     节流毫秒数
 */
function debounceThrottle(fun, wait) {
    let timer = null;
    return function() {
        if (!timer) {
            timer = setTimeout(() => {
                fun();
                timer = null;
            }, wait)
        }
    }
}